package edu.sctu.practice.class02.hujie.online_classes_practice.imooc.Java_IO.class6to3;

import java.io.*;

/**
 * Created by hp on 2015/12/25.
 */
public class ObjectSeriaDemo2 {
    public static void main(String[] args) throws Exception{
//        ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("F:\\桌面文件\\慕课网笔记\\文件传输基础IO流\\obj1.dat"));
//        Foo2 foo2=new Foo2();
//        oos.writeObject(foo2);
//        oos.flush();
//        oos.close();
        //反序列化是否地柜调用父类的构造函数
//        ObjectInputStream ois=new ObjectInputStream(new FileInputStream("F:\\桌面文件\\慕课网笔记\\文件传输基础IO流\\obj1.dat"));
//        Foo2 foo2=(Foo2)ois.readObject();
//        System.out.println(foo2);
//        ois.close();

//        ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("F:\\桌面文件\\慕课网笔记\\文件传输基础IO流\\obj1.dat"));
//        Bar2 bar2=new Bar2();
//        oos.writeObject(bar2);
//        oos.flush();
//        oos.close();

        ObjectInputStream ois=new ObjectInputStream(new FileInputStream("F:\\桌面文件\\慕课网笔记\\文件传输基础IO流\\obj1.dat"));
        Bar2 bar2=(Bar2)ois.readObject();
        System.out.println(bar2);
        ois.close();
        /**
         * 对子类对象进行反序列化操作时；
         * 如果其父类美欧实现序列化接口
         * 那么其父类的构造函数会被调用
         */
    }
}
/*
* 一个类实现了序列化接口，那么其子类都可以进行序列化
* */
